package com.huaxin.feignclient.device.models;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

@Data
public class SwitchCabinet {
    /**
     * 唯一ID（UUID）- 主键
     */
    private String id;

    /**
     * 自增序列号（唯一索引，非主键）
     */
    private Long autoId;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createdAt;

    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updatedAt;

    /**
     * 更新人
     */
    private String updatedBy;

    /**
     * 是否删除（0:未删, 1:已删）
     */
    private Integer isDeleted = 0;

    /**
     * 删除时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime deletedAt;

    /**
     * 删除人
     */
    private String deletedBy;

    /**
     * 组织ID
     */
    private String orgId;

    @Schema(description = "变电箱名称", example = "低压出线柜G1")
    private String cabinetName;

    @Schema(description = "编号", example = "CB-01")
    private String cabinetCode;

    @Schema(description = "类型：进线柜、出线柜、电容补偿柜等", example = "出线柜")
    private String type;

    @Schema(description = "额定电流（A）", example = "630")
    private Integer ratedCurrent;

    @Schema(description = "母线材质", example = "铜")
    private String busbarMaterial;

    @Schema(description = "防护等级（IPXX）", example = "IP42")
    private String protectionLevel;

    @Schema(description = "安装位置", example = "配电室南墙")
    private String location;

    @Schema(description = "所属配电房ID", example = "r123e456-789a-bcde-f012-3456789abcde")
    private String roomId;

    @Schema(description = "家庭ID", example = "family-01")
    private String familyId;
}
